const util = require('../../utils/util.js')

Page({
  data: {
    name: '',
    phone: '',
    communities: [],
    selectedCommunity: '', // 默认选中第一个小区
    detailAddress: '',
    isEdit: false,
    id: null,
         Merchantid:null
  },
  
  // 页面加载时执行
  onLoad: function(options) {
    try {
      const merchantId = wx.getStorageSync('merchantId')
      this.setData({
          Merchantid: merchantId
      });
  } catch (e) {
      console.error('获取商户ID失败:', e);
      wx.showToast({
          title: '获取商户ID失败',
          icon: 'none'
      });
  }

        const url = this.data.Merchantid 
      ? `/address/region?merchantId=${this.data.Merchantid}` 
      : '/address/region';
    util.callContainerApi(url,"GET",null)
  .then(resu => {
      console.log(resu)
      const communities = resu.data.data;
      this.setData({
        communities
      });
  })





    const communities = wx.getStorageInfoSync('communities')
    if(communities === null || communities === undefined){
      //TODO 调用接口获取地址信息并本地存储该地址信息
    }
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: options.isEdit ? '编辑收货地址' : '新增收货地址'
    });

    if (options.isEdit === 'true') {
      try {
        // 解码并设置各个字段
        const region = decodeURIComponent(options.region || '');
        this.setData({
          name: decodeURIComponent(options.name || ''),
          phone: options.phone || '',
          region: region,
          // selectedCommunity: this.data.communities.includes(region) ? region : this.data.communities[0],
          selectedCommunity: region,
          detailAddress: decodeURIComponent(options.address || ''),
          isEdit: true,
          id: Number(options.id),
          rank: Number(options.rank),
          top: options.top
        });
      } catch (error) {
        console.error('解析地址数据失败:', error);
        wx.showToast({
          title: '加载地址信息失败',
          icon: 'none'
        });
        
        // 延迟返回，让用户看到提示
        setTimeout(() => {
          wx.navigateBack();
        }, 1500);
      }
    }
  },
  // 姓名输入事件
  onNameInput(e) {
    this.setData({
      name: e.detail.value
    });
  },

  // ================================获取用户手机号

  // showPrivacyConsent() {
  //   // 显示模态框提示用户同意隐私政策
  //   wx.showModal({
  //     title: '隐私授权',
  //     content: '我们需要获取您的手机号码以便为您提供更好的服务。请阅读并同意《用户服务协议》和《隐私政策》后再继续。',
  //     confirmText: '同意',
  //     cancelText: '取消',
  //     success: (res) => {
  //       if (res.confirm) {
  //         // 用户点击“同意并继续”，调用获取手机号的方法
  //         this.getPhoneNumber();
  //       } else if (res.cancel) {
  //         // 用户点击“取消”，不做任何操作
  //         console.log('用户取消了获取手机号授权');
  //       }
  //     },
  //     fail: (err) => {
  //       console.error('显示隐私同意提示失败:', err);
  //     }
  //   });
  // },

  //   // 获取手机号授权
  //   getPhoneNumber(e) {
  //     if (e.detail.errMsg !== 'getPhoneNumber:ok'){
  //       return
  //     }
  //     console.log(e.detail)
  //   },
  // ==================================获取用户手机号

  // 电话输入事件
  onPhoneInput(e) {
    this.setData({
      phone: e.detail.value
    });
  },
  // 小区选择改变事件
  onCommunityChange(e) {
    console.log("21312312312312312312");
    console.log(e.detail.value);
    this.setData({
      selectedCommunity: this.data.communities[e.detail.value]
    });
  },

  // 详细地址输入事件
  onDetailAddressInput(e) {
    this.setData({
      detailAddress: e.detail.value
    });
  },

  validateForm(){
    const {
      name,
      phone,
      detailAddress,
    } = this.data;
    if(name === '' || phone === '' || !util.testMobile(phone) || detailAddress === ''){
      return false
    }
    return true
  },

  // 保存地址
  async saveAddress() {
    const {
      name,
      phone,
      selectedCommunity,
      detailAddress,
      isEdit,
      id,
      rank,
      top,
    } = this.data;

    // 防重复提交
    if (this.submitting) {
      return;
    }

    // 表单验证
    if (!this.validateForm()) {
      return;
    }

    // 设置提交状态
    this.submitting = true;

    wx.showLoading({
      title: isEdit ? '更新中...' : '保存中...',
    });

    await util.callContainerApi("/address/add","POST",{
      "id": id,
      "address": detailAddress,
      "phone": phone,
      "receiveName": name,
      "region": selectedCommunity,
      "rank": rank,
      "top": top
    }).then(res => {
      wx.hideLoading()
      util.showSuccessToast('新增地址成功')
    }).catch(res => {
      wx.hideLoading()
      util.showErrorToast('新增地址失败')
    })
    // 返回上层页面
    wx.navigateBack()
  }
});